<template>
  <el-form :model="loginForm" :rules="loginRole" ref="loginForm" label-position="left" label-width="0px" class="demo-ruleForm login-container">
    <h3 class="title">系统登录</h3>
    <el-form-item prop="account">
      <el-input type="text" v-model="loginForm.username" auto-complete="off" placeholder="账号"></el-input>
    </el-form-item>
    <el-form-item prop="checkPass">
      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
    </el-form-item>
    <el-checkbox v-model="checked" checked class="remember">记住密码</el-checkbox>
    <el-form-item style="width:100%;">
      <el-button type="primary" style="width:100%;" @click.native.prevent="handleSubmit2" :loading="logining">登录</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
import operatorUtil from '../utils/operator_util'
export default {
  data () {
    return {
      logining: false,
      loginForm: {
        username: 'admin',
        password: '123456'
      },
      loginRole: {
        username: [
          { required: true, message: '请输入账号', trigger: 'blur' }
          // { validator: validaePass }
        ],
        password: [
          { required: true, message: '请输入密码', trigger: 'blur' }
          // { validator: validaePass2 }
        ]
      },
      checked: true
    }
  },
  methods: {
    handleSubmit2 (ev) {
      this.$refs.loginForm.validate((valid) => {
        if (valid) {
          this.logining = true
          var postData = {
            username: this.loginForm.username,
            password: this.loginForm.password
          }
          this.$axios.post(this.$api.LOGIN.url, postData).then(response => {
            this.logining = false
            if (response.data.code === 0) {
              // 登录成功设置
              // this.$cookie.set(this.$config.KEY_USER_TOKEN, response.data.data, { expires: '10D' })
              localStorage.setItem(this.$config.KEY_USER_TOKEN, response.data.data)
              // 为 axios 装载 token
              this.$bus.$emit('loadOperatorToken')
              // 获取用户信息
              this.getOperatorInfo()
            } else {
              this.$message.error(response.data.message)
            }
          }).catch((err) => {
            this.logining = false
            this.$message.error(err.message)
          })
        } else {
          console.log('error submit!!')
          return false
        }
      })
    },
    getOperatorInfo () {
      this.$axios.post(this.$api.OPERATOR_INFO.url).then((response) => {
        console.log('operator:', response.data.data)
        // 保存 operator 信息
        var operator = operatorUtil.setOperator(this, response.data.data)
        window.operator = operator
        // this.$cookie.set(this.$config.KEY_OPERATOR, json, { expires: '10D' })
        localStorage.setItem(this.$config.KEY_OPERATOR, JSON.stringify(operator))
        this.$router.updateRouters(operator.menuList)
        this.$router.go('/home')
      }).catch((err) => {
        this.logining = false
        this.$message.error(err.message)
      })
    }
  }
}

</script>

<style  scoped>
  .login-container {
    /*box-shadow: 0 0px 8px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);*/
    -webkit-border-radius: 5px;
    border-radius: 5px;
    -moz-border-radius: 5px;
    background-clip: padding-box;
    margin: 180px auto;
    width: 350px;
    padding: 35px 35px 15px 35px;
    background: #fff;
    border: 1px solid #eaeaea;
    box-shadow: 0 0 25px #cac6c6;
  }
  .title {
    margin: 0px auto 40px auto;
    text-align: center;
    color: #505458;
  }
  .remember {
    margin: 0px 0px 35px 0px;
  }
</style>
